Read এবং Write Path এর ধারণা

Big Data and Analytics - ক্যাসান্দ্রা (Cassandra) - Cassandra এর Read এবং Write Operations
263

Apache Cassandra একটি ডিস্ট্রিবিউটেড NoSQL ডেটাবেস সিস্টেম যা উচ্চ পারফরম্যান্স এবং স্কেলেবিলিটির জন্য ডিজাইন করা হয়েছে। Cassandra তে ডেটা লেখা (write) এবং পড়া (read) অপারেশন দুটি গুরুত্বপূর্ণ প্রক্রিয়া, এবং এগুলোর মধ্যে কিছু নির্দিষ্ট পাথ বা প্রক্রিয়া রয়েছে যা ডেটা ম্যানিপুলেশন নিশ্চিত করে। এই প্রক্রিয়াগুলি Write Path এবং Read Path নামে পরিচিত, এবং সিস্টেমের কার্যক্ষমতা এবং নির্ভরযোগ্যতা বজায় রাখতে এই দুটি পাথ অত্যন্ত গুরুত্বপূর্ণ।

1. Write Path


Cassandra-তে Write Path হলো সেই প্রক্রিয়া যেখানে ডেটা ডেটাবেসে লেখা হয় এবং সঠিকভাবে সঞ্চিত হয়। Cassandra তে ডেটা লেখা অপারেশন asynchronous প্রক্রিয়া হিসেবে পরিচালিত হয়, যা খুব দ্রুত এবং স্কেলেবল করে তোলে। Write Path অনেক গুরুত্বপূর্ণ কারণ এটি ডেটা নিরাপত্তা, টেকসইতা, এবং পারফরম্যান্স নিশ্চিত করে।

Write Path এর স্টেপগুলি:

  1. Client Request:
    • ক্লায়েন্ট যখন ডেটা লেখার জন্য Cassandra-তে একটি রিকোয়েস্ট পাঠায়, তখন Cassandra প্রথমে commit log এ সেই লেখার রেকর্ডটি যুক্ত করে।
  2. Commit Log:
    • Cassandra তে প্রথমে Commit Log এ ডেটা লেখা হয়। এটি একটি স্বতন্ত্র লগ ফাইল যেখানে ডেটা লেখার সমস্ত রেকর্ড অর্ডারে রাখা হয়। Commit log ব্যবহার করে Cassandra নিশ্চিত করে যে ডেটা হারিয়ে না যায়, কারণ এই লগ ফাইলটি সিস্টেম বন্ধ হলে বা ক্র্যাশ হলে ডেটার পুনরুদ্ধার (recovery) করতে ব্যবহৃত হয়।
  3. Memtable:
    • Commit log থেকে ডেটা পরবর্তী সময়ে Memtable-এ (মেমরি-ভিত্তিক স্টোরেজ) লেখা হয়। Memtable হল একটি ইন-মেমরি ডেটা স্ট্রাকচার যা ডেটাকে সাময়িকভাবে সংরক্ষণ করে, যতক্ষণ না তা ডিস্কে সঞ্চিত হয়।
  4. SSTable:
    • যখন Memtable পূর্ণ হয়ে যায়, তখন এটি SSTable (Sorted String Table) হিসেবে ডিস্কে লেখা হয়। SSTable হলো এক ধরনের ডেটাবেস ফাইল যা স্থায়ীভাবে ডেটা সংরক্ষণ করে। এই ফাইলগুলো পরে আরও কার্যকরীভাবে অনুসন্ধান এবং পুনরুদ্ধারের জন্য ব্যবহৃত হয়।
  5. Replication:
    • Cassandra ডেটা রিপ্লিকেশন নিশ্চিত করতে Replication Factor ব্যবহার করে। ডেটার একাধিক কপি বিভিন্ন নোডে সংরক্ষিত থাকে যাতে ডেটা দ্রুত পাওয়া যায় এবং সিস্টেমের হাই অ্যাভেইলেবিলিটি নিশ্চিত হয়। যখন একটি ডেটা লেখা হয়, এটি অন্যান্য নোডে রিপ্লিকেটেড হয়।

Write Path এর বিভিন্ন ফিচার:

  • Durability: Commit log এবং Memtable দুইটি স্তরের মাধ্যমে ডেটা লেখার নির্ভরযোগ্যতা নিশ্চিত করে।
  • Consistency Level: Write এর Consistency Level নির্ধারণ করা হয়, যেমন ONE, QUORUM, অথবা ALL, যাতে কতো নোডে ডেটা লেখা হবে তা নির্ধারিত হয়।

উদাহরণ:

যখন একজন ব্যবহারকারী INSERT কমান্ড চালায়, Cassandra প্রথমে সেই রেকর্ডটি commit log-এ লেখে, তারপর Memtable-এ সংরক্ষণ করে এবং শেষমেশ SSTable ফাইলে লিখে দেয়।


2. Read Path


Read Path হলো সেই প্রক্রিয়া যেখানে Cassandra ডেটা পড়ে এবং ব্যবহারকারীর জন্য সেটি রিটার্ন করে। Cassandra তে Read Path অনেক বেশি জটিল হতে পারে, কারণ এতে ডেটার সঠিক কপি নির্বাচন করতে হয় এবং ক্লাস্টারের মধ্যে ডেটা সিঙ্ক্রোনাইজেশনের বিষয়টি দেখতে হয়।

Read Path এর স্টেপগুলি:

  1. Client Request:
    • ক্লায়েন্ট যখন একটি রিড রিকোয়েস্ট পাঠায়, তখন Cassandra প্রথমে নির্ধারণ করে কোন নোডে ডেটাটি সংরক্ষিত আছে। Cassandra ডেটা পাঠানোর জন্য Partition Key ব্যবহার করে, যাতে ডেটা নির্দিষ্ট নোডে দ্রুত পাওয়া যায়।
  2. Memtable:
    • Cassandra প্রথমে Memtable-এ খোঁজ করে। Memtable তে আপডেট হওয়া সব ডেটা থাকে, যা ডিস্কে সেভ করা হয়নি। যদি প্রয়োজনীয় ডেটা Memtable-এ পাওয়া যায়, তাহলে তা সরাসরি ব্যবহারকারীকে রিটার্ন করা হয়।
  3. SSTable:
    • যদি Memtable-এ ডেটা না পাওয়া যায়, Cassandra পরবর্তী সময়ে SSTable-এ খোঁজ করে। Cassandra সকল SSTable ফাইলগুলোর মধ্যে ডেটা খুঁজে বের করতে পারে। SSTable ফাইলগুলো ফিজিকালি ডিস্কে সংরক্ষিত থাকে।
  4. Bloom Filter:
    • Bloom Filter একটি পদ্ধতি যা SSTable ফাইলের মধ্যে ডেটার উপস্থিতি দ্রুত চেক করতে ব্যবহৃত হয়। Bloom Filter কোন ফাইলের মধ্যে ডেটা রয়েছে কিনা তা আগে থেকেই চিহ্নিত করে, যাতে Cassandra দ্রুত সিদ্ধান্ত নিতে পারে কোন ফাইলটি পড়তে হবে।
  5. Caching:
    • Cassandra কিছু ক্ষেত্রে Row Cache এবং Key Cache ব্যবহার করে ডেটা দ্রুত প্রাপ্তির জন্য। Row Cache-এ ডেটার একটি কপি রাখা হয় যা বারবার পড়ার জন্য দ্রুত এক্সেসযোগ্য থাকে, এবং Key Cache-এ কী এর জন্য ইনডেক্স তৈরি থাকে।
  6. Consistency Level:
    • Read অপারেশনের জন্য Consistency Level নির্ধারণ করা হয়, যাতে কোন নোড থেকে ডেটা রিট্রিভ করা হবে তা নির্ধারণ করা যায়। উদাহরণস্বরূপ, QUORUM consistency level নিশ্চিত করে যে ডেটা কেবল তখনই পাওয়া যাবে যখন অধিকাংশ নোডে সিঙ্ক্রোনাইজড কপি থাকবে।

Read Path এর বৈশিষ্ট্য:

  • Fast Data Retrieval: Memtable, SSTable, এবং Bloom Filter ব্যবহার করে ডেটা দ্রুত উদ্ধার করা হয়।
  • Consistency Level: Read অপারেশনের কনফিগারেবল Consistency Level নিশ্চিত করে ডেটার সঠিক কপি পাওয়া যাবে।
  • Caching: Row Cache এবং Key Cache ব্যবহার করে ডেটা দ্রুত পড়া যায়।

উদাহরণ:

যদি একজন ব্যবহারকারী SELECT কমান্ড চালায়, Cassandra প্রথমে Memtable চেক করে, যদি সেখানে না থাকে তবে SSTable এর মধ্যে খোঁজে। যদি SSTable-এ পাওয়া যায়, তাহলে Cassandra সেই ডেটা ক্লায়েন্টকে পাঠিয়ে দেয়।


3. Write Path এবং Read Path এর মধ্যে পার্থক্য


ফিচারWrite PathRead Path
প্রক্রিয়াডেটা লেখার প্রক্রিয়াডেটা পড়ার প্রক্রিয়া
প্রথমে কোথায় লেখা হয়Commit LogMemtable বা SSTable
ডেটা সংরক্ষণMemtable এবং SSTableMemtable এবং SSTable
ডেটার উপস্থিতি চেকCommit Log এবং Memtable থেকে ডেটা প্রাপ্তMemtable, SSTable এবং Bloom Filter
পারফরম্যান্সউচ্চ পারফরম্যান্স, কিন্তু ডিস্কে লেখা হয় পরেউচ্চ পারফরম্যান্স, তবে ডেটা খুঁজে পাওয়া জটিল হতে পারে
Consistency LevelWrite Consistency Level (যেমন, ONE, QUORUM, ALL)Read Consistency Level (যেমন, ONE, QUORUM, ALL)

সারাংশ


Cassandra তে Write Path এবং Read Path দুটি গুরুত্বপূর্ণ প্রক্রিয়া যা ডেটা সংরক্ষণ এবং প্রক্রিয়া করার জন্য ব্যবহৃত হয়। Write Path ডেটা Commit Log, Memtable, এবং SSTable-এর মাধ্যমে লিখে, এবং Read Path Memtable, SSTable, এবং Bloom Filter ব্যবহার করে ডেটা দ্রুত উদ্ধার করে। এই প্রক্রিয়াগুলি Cassandra-র পারফরম্যান্স, স্কেলেবিলিটি, এবং নির্ভরযোগ্যতা নিশ্চিত করতে সহায়ক। Cassandra এর Consistency Level এবং Asynchronous Writes ব্যবস্থার মাধ্যমে এগুলি আরো কার্যকরীভাবে কাজ করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...